package course.examples.UI.FragmentActionBar;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;
public class QuoteFragment extends Fragment {
private TextView mQuoteView = null;
private int mCurrIdx = QuoteViewerActivity.UNSELECTED;
private int mQuoteArrLen = 0;
// Returns currently selected item
public int getShownIndex() {
return mCurrIdx;
}
// Show the Quote string at position newIndex
public void showQuoteAtIndex(int newIndex) {
if (newIndex < 0 || newIndex >= mQuoteArrLen)
return;
mCurrIdx = newIndex;
mQuoteView.setText(QuoteViewerActivity.QuoteArray[mCurrIdx]);
}
// Called to create the content view for this Fragment
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout defined in quote_fragment.xml
// The last parameter is false because the returned view does not need to be attached to the container ViewGroup
return inflater.inflate(R.layout.detail_fragment, container, false);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Don't destroy Fragment on reconfiguration
setRetainInstance(true);
// This Fragment adds options to the ActionBar
setHasOptionsMenu(true);
}
// Set up some information about the mQuoteView TextView
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
mQuoteView = (TextView) getActivity().findViewById(R.id.quoteView);
mQuoteArrLen = QuoteViewerActivity.QuoteArray.length;
}
@Override
public void onDetach() {
super.onDetach();
mCurrIdx = QuoteViewerActivity.UNSELECTED;
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
// Inflate the options Menu using quote_menu.xml
inflater.inflate(R.menu.quote_menu, menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// Show Toast Messages. Toast Messages are discussed in the lesson on user interface classes
// return value true indicates that the menu click has been handled
case R.id.detail_menu_item_main:
Toast.makeText(getActivity().getApplicationContext(),
"This action provided by the QuoteFragment",
Toast.LENGTH_SHORT).show();
return true;
case R.id.detail_menu_item_secondary:
Toast.makeText(getActivity().getApplicationContext(),
"This action is also provided by the QuoteFragment",
Toast.LENGTH_SHORT).show();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}